#ifndef POSTMANAGER_H
#define POSTMANAGER_H

#include <broadcast.h>
#include <modelManager.h>
#include <viewManager.h>
#include <string>

namespace Controller {

  class PostManager
  {
  protected:
    Broadcast const *broadcast;
    Model::ModelManager *modelManager;
    View::ViewManager *viewManager;

    static PostManager *instance;
    PostManager();
  public:
    static PostManager *GetPostManager();
    ~PostManager();

    bool SetModelManager(Model::ModelManager *newModelManager){modelManager = newModelManager;return true;}
    bool SetViewManager(View::ViewManager *newViewManager){viewManager = newViewManager;return true;}

    bool SetBroadcastType(BroadcastType newBroadcastType);
    bool SetBoolData(bool data);
    bool SetStringData(std::string data);
    bool SetIntData(int data);
    bool SetDoubleData(double data);
    
    int SendBroadcast();
  };

}

#endif
